Semantik Web • Hafta 04
Class, Property, Individual, Axiom; OWL Lite / DL / Full, OWL 2 profilleri ve Protégé ile ilk ontoloji
Lisansüstü Semantik Web Dersi • CMPE 583
Hafta 04 • Kazanımlar
01
Turtle grafı, RDFS çıkarımları ve zincirleme SPARQL.
Tipsiz "16" yazılırsa S5 kuralı sessizce sonuç üretmez — en sık kaybedilen puan.
| Sık hata | Sonucu |
|---|---|
| ?a yerine sabit :Lactose | Diğer alerjiler görünmez |
| :Triggers yönünün ters yazımı | Boş sonuç |
| PREFIX eksikliği | Ayrıştırma hatası |
02
Tanımlama mantığı temelli ontoloji dili.
| Yetenek | RDFS | OWL |
|---|---|---|
| Ayrık sınıflar | — | owl:disjointWith |
| Denk sınıflar | — | owl:equivalentClass |
| Kısıtlar | — | Restriction |
| Sayı kısıtı | — | Cardinality |
| Özellik karakteristiği | — | functional, inverse, transitive |
| Birey özdeşliği | — | sameAs / differentFrom |
| Kavram | Alerji projesi | İkinci örnek (üniversite) |
|---|---|---|
| Class | Person, Product, Allergy | Student, Course, Instructor |
| Object Property | Contain, Triggers | enrolledIn, teaches |
| Datatype Property | hasAge, hasBMI | hasCredit, hasGPA |
| Individual | Nisin, TC_001 | CMPE583, Ali |
| Axiom | Adult ⊑ Person | Student ⊓ Instructor = ∅ |
TBox — sınıflar
Adult ⊑ Person
Terminoloji: kavram tanımları
RBox — özellikler
Lactose_Allergen ⊑ Effected_Allergen
Rol hiyerarşisi ve karakteristikler
ABox — bireyler
Product(EAN_00004)
Olgular: veri
Projede TBox küçük, ABox orta, RBox ise alt özellik hiyerarşisiyle şaşırtıcı biçimde etkilidir.
03
Lite, DL, Full ve OWL 2 profilleri — hangisi neden?
| Tür | İfade gücü | Karar verilebilir? | Kullanım |
|---|---|---|---|
| OWL Lite | Sınırlı: hiyerarşi, basit kısıt | Evet, hızlı | Basit taksonomiler |
| OWL DL | Yüksek, mantıksal sınırlar içinde | Evet | Projemiz burada |
| OWL Full | En yüksek, RDF ile tam uyum | Hayır | Meta-modelleme |
DL seçimi bir mühendislik kararıdır: HermiT ve Pellet ancak DL sınırları içinde garantili sonuç verir.
Hatalı
Doğru (projede)
Bir kaynağı hem sınıf hem birey yapmak (punning) OWL DL'i terk etmektir; reasoner uyarı verir veya sonucu garanti etmez.
| Profil | Güçlü yanı | Tipik alan |
|---|---|---|
| OWL 2 EL | Çok büyük taksonomilerde hızlı sınıflandırma | SNOMED CT, tıbbi terminoloji |
| OWL 2 QL | Veritabanı üstünde sorgu yazımı (OBDA) | Kurumsal veri erişimi |
| OWL 2 RL | Kural motorlarıyla ölçeklenir | Kurumsal kural sistemleri |
| OWL 2 DL | Tam ifade gücü | Alerji projesi |
Profil seçimi = ifade gücü ile hız arasında bilinçli takas.
| Yenilik | Alerji örneği |
|---|---|
| Nitelikli sayı kısıtı | En az 2 FoodAdditives içeren ürün |
| Özellik zinciri | Contain ∘ Triggers ⊑ mayTrigger |
| Ayrık birleşim | Person / Product / Allergy tek aksiyomda ayrık |
| Veri aralıkları | BMI için double[>= 30.0] |
| Anahtarlar (HasKey) | Barkod, ürünü tekil belirler |
Özellik zinciri, S6 kuralının bir kısmını SWRL'siz ifade etmemizi sağlar — Hafta 05'te deneyeceğiz.
Protégé arayüzünde Manchester, dosyada RDF/XML görürsünüz. Aynı aksiyom.
04
Hiyerarşi, ayrıklık, denklik ve tanımlı sınıflar.
Dört üst sınıf birbirinden bağımsızdır; iki alt sınıf yalnızca Person altındadır.
Bu tek aksiyom sayesinde :TC_009 :Contain :Nisin gibi bir hata tutarsızlık olarak yakalanır: kişi aynı anda ürün olamaz.
Gerekli ve yeterli koşul: bu tanımı sağlayan her ürün otomatik olarak sınıfa girer.
Fark: subClassOf yalnızca gerekli koşuldur — üyelik çıkarılmaz.
| İfade | Manchester | Alerji örneği |
|---|---|---|
| Kesişim (⊓) | and | Person and (hasAllergy some Allergy) |
| Birleşim (⊔) | or | Lactose or Egg alerjisi |
| Tümleyen (¬) | not | not (hasAllergy some Allergy) |
| Sıralı küme | { … } | {Lactose, Egg, Fish, Gluten} |
Tümleyen ile "alerjisi olmayan" yazılabilir; ama açık dünyada bu sınıf, bilinen alerjisi olmayanları değil, alerjisi olmadığı kanıtlanmış olanları içerir.
05
Nesne ve veri özellikleri, karakteristikler.
| Özellik | Domain → Range | Rolü |
|---|---|---|
| ChooseProduct | Person → Product | Tüketim tercihi |
| Contain | Product → FoodAdditives | Etiket bilgisi |
| Triggers | FoodAdditives → Allergy | Tıbbi bilgi |
| hasAllergy | Person → Allergy | Hasta profili |
| Effected_Allergen | Person → FoodAdditives | Çıkarım sonucu |
İlk dördü bildirilir, beşincisi üretilir. Bir ontolojide hangi özelliğin veri hangisinin sonuç olduğunu bilmek tasarımın özüdür.
| Özellik | Tip |
|---|---|
| hasName | string |
| hasAge | int |
| hasWeight / hasHeight | double |
| hasBMI | double (çıkarım) |
| Karakteristik | Anlamı | Örnek |
|---|---|---|
| Functional | En çok bir değer | hasBMI, hasBirthDate |
| Inverse functional | Değer özneyi belirler | hasBarcode |
| Transitive | Zincir taşınır | hasIngredientPart |
| Symmetric | İki yönlü | crossReactsWith |
| Asymmetric | Ters asla doğru değil | Contain |
| Irreflexive | Kendisiyle ilişkilenmez | Triggers |
Bu yüzden BMI'yi functional yapmak, kural motorunun iki kez farklı değer yazmasını hata olarak ortaya çıkarır — istenen davranıştır.
Inverse
Zincir (OWL 2)
Zincir sayesinde "bu ürün hangi alerjileri tetikleyebilir?" sorusu SWRL'siz cevaplanır. Kişi profilini işe katmak ise hâlâ kural gerektirir.
E kodları ile ticari adları sameAs ile bağlamak, farklı market kataloglarını birleştirmenin yoludur.
06
Sıfırdan kurulum: IRI, sınıf, özellik, birey, reasoner.
| # | İşlem | Nerede |
|---|---|---|
| 1 | Yeni ontoloji, IRI belirle | File → New |
| 2 | Sınıfları ekle | Entities → Classes |
| 3 | Ayrıklık bildir | Disjoint With |
| 4 | Nesne özellikleri, domain/range | Object properties |
| 5 | Veri özellikleri | Data properties |
| 6 | Bireyleri ekle | Individuals |
| 7 | Reasoner çalıştır | Reasoner → HermiT → Start |
| 8 | RDF/XML olarak kaydet | File → Save as |
Şematik gösterim. IRI sonradan değiştirilirse tüm yerel adlar taşınır — baştan doğru seçin.
Ayrıklığı en baştan bildirin: sonradan eklenen ayrıklık, biriken hatalı bireyleri anında tutarsız yapar.
Birey adı = barkod; okunur ad ise veri özelliğidir. Bu ayrım, çok dilli katalogda kritik olur.
| Menü | İşi |
|---|---|
| Reasoner → HermiT | Motoru seç |
| Start reasoner | Çıkarımı başlat |
| Synchronise | Değişiklik sonrası yenile |
| Explain inconsistency | Çelişkinin gerekçesi |
Okuma ipucu
Protégé çıkarılan bildirimleri farklı renkte gösterir. Sarı zeminli satır = reasoner'ın ürettiği bilgi; dosyaya yazılmaz.
| Biçim | Avantaj | Projede |
|---|---|---|
| RDF/XML | En yaygın, araç desteği tam | Kullandığımız |
| Turtle | İnsan tarafından okunur | Derste örnekler |
| OWL/XML | Şemaya dayalı doğrulama | — |
| Functional | Standart metinde kullanılır | Akademik yazım |
| OBO / Manchester | Alan toplulukları | — |
SWRL kuralları RDF/XML'de swrl:Imp aksiyomları olarak saklanır — biçim değiştirirken kural kaybını kontrol edin.
| Hata | Belirtisi | Çözüm |
|---|---|---|
| Somut nesneyi sınıf yapmak | Nisin adlı boş sınıf | Birey olarak ekle |
| Ayrıklık bildirmemek | Reasoner hata bulmuyor | Disjoint ekle |
| Literal tipini boş bırakmak | Kural sonuç üretmiyor | xsd tipini seç |
| Domain'i kısıt sanmak | Beklenmeyen tip çıkarımı | Kısıt için Restriction kullan |
| IRI'yi sonradan değiştirmek | Kurallar kırılıyor | Baştan sabitle |
Aynı üç yapı: ayrık sınıflar, domain/range, tanımlı sınıf. Alan değişir, kalıp değişmez.
only (allValuesFrom) evrensel kısıttır: bütün malzemeler et dışı olmalı.
Tuzak: malzemeleri kapatmadıysanız (closure), açık dünya gereği hiçbir yemek vejetaryen çıkarılmaz.
Aynı tuzak alerji projesinde "güvenli ürün" tanımında karşımıza çıkacak — Hafta 05.
07
Protégé'de kendi ontolojinizi kurun.
Teslim
.owl dosyası (RDF/XML) + 3 sayfa rapor: aksiyom listesi, çıkarım ekran görüntüleri, çelişki analizi.
Çözümü Hafta 05'in başında ele alacağız.
| Ölçüt | Ağırlık | Beklenen |
|---|---|---|
| Sınıf ve hiyerarşi | 20% | Ayrıklık doğru bildirilmiş |
| Özellik tasarımı | 25% | Domain/range + karakteristikler |
| Bireyler | 15% | Tipli literaller |
| Tanımlı sınıf | 25% | Çıkarım kanıtlanmış |
| Çelişki analizi | 15% | Gerekçe doğru okunmuş |
Özet • 1 / 2
Özet • 2 / 2
Hafta 05'te
OWL ileri konular: someValuesFrom / allValuesFrom, cardinality, karmaşık sınıf tanımları ve Protégé uygulamaları.
Ayrıca: Ödev 4'ün ayrıntılı çözümü.
Tekrar Soruları
Alıştırma • Sınıf içi
"Laktoz alerjisi olan ve laktoz tetikleyici katkı içeren bir ürün seçen kişi" sınıfını Manchester sözdizimi ile tanımlayın.
Sorular
Çözüm Hafta 05'te.